package com.unju.ventanas.perfil;

import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.border.TitledBorder;

import org.apache.log4j.Logger;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import com.unju.hibernate.entidades.Perfil;
import com.unju.hibernate.patronDAO.imp.PerfilDAOImp;
import com.unju.modelo.Auditoria;
import com.unju.utils.AllShowMessage;
import com.unju.utils.ConstantesGlobales;
import com.unju.ventanas.archivo.JDInicioSesion;
import com.unju.ventanas.auditoria.JPAuditoria;
import com.unju.ventanas.principal.JFrmPrincipal;

public class JDialogEditarPermiso extends JDialog {

	private static final long serialVersionUID = 1L;
	final static Logger logger = Logger.getLogger(JDialogEditarPermiso.class);
	
	private JTextField txtNombrePer;
	private JTextArea txtAreaDes;
	// Modulo Gestion de Usuario
	private JRadioButton rbtnActMdUsu;
	private JRadioButton rbtnDesacMdUsu;
	private JCheckBox chkMdUsuarioGuar;
	private JCheckBox chkMdUsuarioModi;
	private JCheckBox chkMdUsuarioEliminar;
	private JCheckBox chkMdUsuarioConsultar;
	// Modulo de Permiso
	private JRadioButton rbtnActMdPer;
	private JRadioButton rbtnDesacMdPer;
	private JCheckBox chkMdPermisoGuar;
	private JCheckBox chkMdPermisoModi;
	private JCheckBox chkMdPermisoEliminar;
	private JCheckBox chkMdPermisoConsultar;
	// Modulo Proyecto
	private JRadioButton rbtnActMdProy;
	private JRadioButton rbtnDesacMdProy;
	private JCheckBox chkMdProyGuar;
	private JCheckBox chkMdProyModi;
	private JCheckBox chkMdProyEliminar;
	private JCheckBox chkMdProyConsultar;
	// Modulo Auditoria
	private JRadioButton rbtnDesacMdAudi;
	private JRadioButton rbtnActMdAudi;
	private JCheckBox chkMdAudiGuar;
	private JCheckBox chkMdAudiModi;
	private JCheckBox chkMdAudiEliminar;
	private JCheckBox chkMdAudiConsultar;
	Perfil perfil;
	private Auditoria tmp;

	/**
	 * Create the frame.
	 */
	public JDialogEditarPermiso(JFrmPrincipal pPrincipal, Perfil p) {
		crearVentana();
		initButton();
		panelDatoPer();
		panelModProy();
		panelModAudi();
		panelModUsuario();
		panelModPermiso();

		LimpiarCheckBox();
		DisableCheckBox();
		cargarDatos(p);
		perfil = p;
		setVisible(true);
	}

	public void cargarDatos(Perfil p) {
		this.txtNombrePer.setText(p.getNombre());
		this.txtAreaDes.setText(p.getDescripcion());

		String cc = p.getPermiso();
		System.out.println(cc.charAt(0));
		System.out.println(cc);

		// Permiso
		if (cc.charAt(0) == '1')
			this.rbtnActMdPer.setSelected(true);
		else
			this.rbtnDesacMdPer.setSelected(true);
		if (cc.charAt(1) == '1')
			this.chkMdPermisoGuar.setSelected(true);
		if (cc.charAt(2) == '1')
			this.chkMdPermisoModi.setSelected(true);
		if (cc.charAt(3) == '1')
			this.chkMdPermisoEliminar.setSelected(true);
		if (cc.charAt(4) == '1')
			this.chkMdPermisoConsultar.setSelected(true);

		// Usuario
		if (cc.charAt(5) == '1')
			this.rbtnActMdUsu.setSelected(true);
		else
			this.rbtnDesacMdUsu.setSelected(true);
		if (cc.charAt(6) == '1')
			this.chkMdUsuarioGuar.setSelected(true);
		if (cc.charAt(7) == '1')
			this.chkMdUsuarioModi.setSelected(true);
		if (cc.charAt(8) == '1')
			this.chkMdUsuarioEliminar.setSelected(true);
		if (cc.charAt(9) == '1')
			this.chkMdUsuarioConsultar.setSelected(true);

		// Auditoria
		if (cc.charAt(10) == '1')
			this.rbtnActMdAudi.setSelected(true);
		else
			this.rbtnDesacMdAudi.setSelected(true);
		if (cc.charAt(11) == '1')
			this.chkMdAudiGuar.setSelected(true);
		if (cc.charAt(12) == '1')
			this.chkMdAudiModi.setSelected(true);
		if (cc.charAt(13) == '1')
			this.chkMdAudiEliminar.setSelected(true);
		if (cc.charAt(14) == '1')
			this.chkMdAudiConsultar.setSelected(true);

		// Proyecto
		if (cc.charAt(15) == '1')
			this.rbtnActMdProy.setSelected(true);
		else
			this.rbtnDesacMdProy.setSelected(true);
		if (cc.charAt(16) == '1')
			this.chkMdProyGuar.setSelected(true);
		if (cc.charAt(17) == '1')
			this.chkMdProyModi.setSelected(true);
		if (cc.charAt(18) == '1')
			this.chkMdProyEliminar.setSelected(true);
		if (cc.charAt(19) == '1')
			this.chkMdProyConsultar.setSelected(true);

	}

	public void crearVentana() {
		setIconImage(Toolkit.getDefaultToolkit().getImage(
				JDialogDetallePermiso.class
						.getResource("/com/unju/img/Key.png")));
		setPreferredSize(new Dimension(550, 540));
		setMinimumSize(new Dimension(550, 540));
		setMaximumSize(new Dimension(550, 540));
		setSize(550, 540);
		setBounds(0, 0, 550, 540);
		setLocationRelativeTo(JFrmPrincipal.getInstance());
		getContentPane().setLayout(null);
		setTitle(ConstantesGlobales.EDITAR_PERMISO);
		setModal(true);
	}

	public void panelDatoPer() {
		JPanel pDatosPersonales = new JPanel();
		pDatosPersonales.setBorder(new TitledBorder(null, "Datos De Permiso",
				TitledBorder.LEFT, TitledBorder.TOP, null, null));
		pDatosPersonales.setBounds(10, 10, 510, 135);
		pDatosPersonales.setLayout(null);
		getContentPane().add(pDatosPersonales);

		JLabel lblApellido = new JLabel("Nombre de Permiso:");
		lblApellido.setBounds(50, 27, 150, 14);
		pDatosPersonales.add(lblApellido);

		JLabel lblNombre = new JLabel("Descripcion:");
		lblNombre.setBounds(50, 50, 100, 14);
		pDatosPersonales.add(lblNombre);

		txtNombrePer = new JTextField();
		txtNombrePer.setBounds(175, 24, 150, 20);
		pDatosPersonales.add(txtNombrePer);
		txtNombrePer.setColumns(10);

		txtAreaDes = new JTextArea();
		txtAreaDes.setBounds(175, 50, 150, 70);
		pDatosPersonales.add(txtAreaDes);
	}

	public void panelModUsuario() {
		JPanel pModGestUsuario = new JPanel();
		pModGestUsuario.setBorder(new TitledBorder(UIManager
				.getBorder("TitledBorder.border"), "Modulo Gestion de Usuario",
				TitledBorder.LEFT, TitledBorder.TOP, null, null));
		pModGestUsuario.setBounds(10, 300, 250, 150);
		pModGestUsuario.setLayout(null);
		getContentPane().add(pModGestUsuario);

		rbtnActMdUsu = new JRadioButton("Activar");
		rbtnActMdUsu.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				chkMdUsuarioGuar.setEnabled(true);
				chkMdUsuarioModi.setEnabled(true);
				chkMdUsuarioEliminar.setEnabled(true);
				chkMdUsuarioConsultar.setEnabled(true);
			}
		});
		rbtnActMdUsu.setBounds(30, 20, 80, 20);
		pModGestUsuario.add(rbtnActMdUsu);

		rbtnDesacMdUsu = new JRadioButton("Desactivar");
		rbtnDesacMdUsu.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				chkMdUsuarioGuar.setEnabled(false);
				chkMdUsuarioModi.setEnabled(false);
				chkMdUsuarioEliminar.setEnabled(false);
				chkMdUsuarioConsultar.setEnabled(false);
			}
		});
		rbtnDesacMdUsu.setBounds(110, 20, 100, 20);
		rbtnDesacMdUsu.setSelected(true);
		pModGestUsuario.add(rbtnDesacMdUsu);

		ButtonGroup op = new ButtonGroup();
		op.add(rbtnDesacMdUsu);
		op.add(rbtnActMdUsu);

		chkMdUsuarioGuar = new JCheckBox("Guardar");
		chkMdUsuarioGuar.setBounds(90, 50, 100, 20);
		pModGestUsuario.add(chkMdUsuarioGuar);

		chkMdUsuarioModi = new JCheckBox("Modificar");
		chkMdUsuarioModi.setActionCommand("");
		chkMdUsuarioModi.setBounds(90, 70, 100, 20);
		pModGestUsuario.add(chkMdUsuarioModi);

		chkMdUsuarioEliminar = new JCheckBox("Eliminar");
		chkMdUsuarioEliminar.setActionCommand("");
		chkMdUsuarioEliminar.setBounds(90, 90, 100, 20);
		pModGestUsuario.add(chkMdUsuarioEliminar);

		chkMdUsuarioConsultar = new JCheckBox("Consultar");
		chkMdUsuarioConsultar.setActionCommand("");
		chkMdUsuarioConsultar.setBounds(90, 110, 100, 20);
		pModGestUsuario.add(chkMdUsuarioConsultar);
	}

	public void panelModPermiso() {
		JPanel pModGestPermiso = new JPanel();
		pModGestPermiso.setBorder(new TitledBorder(UIManager
				.getBorder("TitledBorder.border"), "Modulo Gestion de Permiso",
				TitledBorder.LEFT, TitledBorder.TOP, null, null));
		pModGestPermiso.setBounds(270, 300, 250, 150);
		pModGestPermiso.setLayout(null);
		getContentPane().add(pModGestPermiso);

		rbtnActMdPer = new JRadioButton("Activar");
		rbtnActMdPer.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				chkMdPermisoGuar.setEnabled(true);
				chkMdPermisoModi.setEnabled(true);
				chkMdPermisoEliminar.setEnabled(true);
				chkMdPermisoConsultar.setEnabled(true);
			}
		});
		rbtnActMdPer.setBounds(30, 20, 80, 20);
		pModGestPermiso.add(rbtnActMdPer);

		rbtnDesacMdPer = new JRadioButton("Desactivar");
		rbtnDesacMdPer.setSelected(true);
		rbtnDesacMdPer.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				chkMdPermisoGuar.setEnabled(false);
				chkMdPermisoModi.setEnabled(false);
				chkMdPermisoEliminar.setEnabled(false);
				chkMdPermisoConsultar.setEnabled(false);
			}
		});
		rbtnDesacMdPer.setBounds(110, 20, 100, 20);
		rbtnDesacMdPer.setSelected(true);
		pModGestPermiso.add(rbtnDesacMdPer);

		ButtonGroup op = new ButtonGroup();
		op.add(rbtnDesacMdPer);
		op.add(rbtnActMdPer);

		chkMdPermisoGuar = new JCheckBox("Guardar");
		chkMdPermisoGuar.setBounds(90, 50, 100, 20);
		pModGestPermiso.add(chkMdPermisoGuar);

		chkMdPermisoModi = new JCheckBox("Modificar");
		chkMdPermisoModi.setActionCommand("");
		chkMdPermisoModi.setBounds(90, 70, 100, 20);
		pModGestPermiso.add(chkMdPermisoModi);

		chkMdPermisoEliminar = new JCheckBox("Eliminar");
		chkMdPermisoEliminar.setActionCommand("");
		chkMdPermisoEliminar.setBounds(90, 90, 100, 20);
		pModGestPermiso.add(chkMdPermisoEliminar);

		chkMdPermisoConsultar = new JCheckBox("Consultar");
		chkMdPermisoConsultar.setActionCommand("");
		chkMdPermisoConsultar.setBounds(90, 110, 100, 20);
		pModGestPermiso.add(chkMdPermisoConsultar);
	}

	public void panelModProy() {
		JPanel pModGestProy = new JPanel();
		pModGestProy.setLayout(null);
		pModGestProy.setBorder(new TitledBorder(UIManager
				.getBorder("TitledBorder.border"),
				"Modulo Gestion de Proyecto", TitledBorder.LEFT,
				TitledBorder.TOP, null, null));
		pModGestProy.setBounds(10, 150, 250, 150);
		getContentPane().add(pModGestProy);

		rbtnActMdProy = new JRadioButton("Activar");
		rbtnActMdProy.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				chkMdProyGuar.setEnabled(true);
				chkMdProyModi.setEnabled(true);
				chkMdProyEliminar.setEnabled(true);
				chkMdProyConsultar.setEnabled(true);
			}
		});
		rbtnActMdProy.setBounds(30, 20, 80, 20);
		pModGestProy.add(rbtnActMdProy);

		rbtnDesacMdProy = new JRadioButton("Desactivar");
		rbtnDesacMdProy.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				chkMdProyGuar.setEnabled(false);
				chkMdProyModi.setEnabled(false);
				chkMdProyEliminar.setEnabled(false);
				chkMdProyConsultar.setEnabled(false);
			}
		});
		rbtnDesacMdProy.setBounds(110, 20, 100, 20);
		pModGestProy.add(rbtnDesacMdProy);

		ButtonGroup op = new ButtonGroup();
		op.add(rbtnDesacMdProy);
		op.add(rbtnActMdProy);

		chkMdProyGuar = new JCheckBox("Guardar");
		chkMdProyGuar.setBounds(90, 50, 100, 20);
		pModGestProy.add(chkMdProyGuar);

		chkMdProyModi = new JCheckBox("Modificar");
		chkMdProyModi.setActionCommand("");
		chkMdProyModi.setBounds(90, 70, 100, 20);
		pModGestProy.add(chkMdProyModi);

		chkMdProyEliminar = new JCheckBox("Eliminar");
		chkMdProyEliminar.setActionCommand("");
		chkMdProyEliminar.setBounds(90, 90, 100, 20);
		pModGestProy.add(chkMdProyEliminar);

		chkMdProyConsultar = new JCheckBox("Consultar");
		chkMdProyConsultar.setActionCommand("");
		chkMdProyConsultar.setBounds(90, 110, 100, 20);
		pModGestProy.add(chkMdProyConsultar);
	}

	public void panelModAudi() {
		JPanel pModGestAudi = new JPanel();
		pModGestAudi.setLayout(null);
		pModGestAudi.setBorder(new TitledBorder(UIManager
				.getBorder("TitledBorder.border"),
				"Modulo Gestion de Auditoria", TitledBorder.LEFT,
				TitledBorder.TOP, null, null));
		pModGestAudi.setBounds(270, 150, 250, 150);
		getContentPane().add(pModGestAudi);

		rbtnDesacMdAudi = new JRadioButton("Desactivar");
		rbtnDesacMdAudi.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				chkMdAudiGuar.setEnabled(false);
				chkMdAudiModi.setEnabled(false);
				chkMdAudiEliminar.setEnabled(false);
				chkMdAudiConsultar.setEnabled(false);
			}
		});
		rbtnDesacMdAudi.setBounds(110, 20, 100, 20);
		pModGestAudi.add(rbtnDesacMdAudi);

		rbtnActMdAudi = new JRadioButton("Activar");
		rbtnActMdAudi.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				chkMdAudiGuar.setEnabled(true);
				chkMdAudiModi.setEnabled(true);
				chkMdAudiEliminar.setEnabled(true);
				chkMdAudiConsultar.setEnabled(true);
			}
		});
		rbtnActMdAudi.setBounds(30, 20, 80, 20);
		pModGestAudi.add(rbtnActMdAudi);

		ButtonGroup op = new ButtonGroup();
		op.add(rbtnDesacMdAudi);
		op.add(rbtnActMdAudi);

		chkMdAudiGuar = new JCheckBox("Guardar");
		chkMdAudiGuar.setBounds(90, 50, 100, 20);
		pModGestAudi.add(chkMdAudiGuar);

		chkMdAudiModi = new JCheckBox("Modificar");
		chkMdAudiModi.setActionCommand("");
		chkMdAudiModi.setBounds(90, 70, 100, 20);
		pModGestAudi.add(chkMdAudiModi);

		chkMdAudiEliminar = new JCheckBox("Eliminar");
		chkMdAudiEliminar.setActionCommand("");
		chkMdAudiEliminar.setBounds(90, 90, 100, 20);
		pModGestAudi.add(chkMdAudiEliminar);

		chkMdAudiConsultar = new JCheckBox("Consultar");
		chkMdAudiConsultar.setActionCommand("");
		chkMdAudiConsultar.setBounds(90, 110, 100, 20);
		pModGestAudi.add(chkMdAudiConsultar);
	}

	public void initButton() {
		JButton btnGuardar = new JButton(ConstantesGlobales.BTN_GUARDAR);
		btnGuardar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				guardarPermiso();// (*)Ver metodo para guardar Permiso
			}
		});
		btnGuardar.setBounds(225, 460, 89, 23);
		getContentPane().add(btnGuardar);

		JButton btnEliminar = new JButton(ConstantesGlobales.BTN_ELIMINAR);
		btnEliminar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				eliminarPermiso();
			}
		});
		btnEliminar.setBounds(125, 460, 89, 23);
		getContentPane().add(btnEliminar);

		JButton btnSalir = new JButton(ConstantesGlobales.BTN_CANCELAR);
		btnSalir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				dispose();
			}
		});
		;
		btnSalir.setBounds(325, 460, 89, 23);
		getContentPane().add(btnSalir);
	}

	private void DisableCheckBox() {
		// Desactivar Usuario
		this.rbtnDesacMdUsu.setSelected(true);
		this.rbtnActMdUsu.setSelected(false);
		this.chkMdUsuarioGuar.setEnabled(false);
		this.chkMdUsuarioModi.setEnabled(false);
		this.chkMdUsuarioEliminar.setEnabled(false);
		this.chkMdUsuarioConsultar.setEnabled(false);

		// Desactivar Permiso
		this.rbtnDesacMdPer.setSelected(true);
		this.rbtnActMdPer.setSelected(false);
		this.chkMdPermisoGuar.setEnabled(false);
		this.chkMdPermisoModi.setEnabled(false);
		this.chkMdPermisoEliminar.setEnabled(false);
		this.chkMdPermisoConsultar.setEnabled(false);

		// Desactivar Proyecto
		this.rbtnActMdProy.setSelected(false);
		this.rbtnDesacMdProy.setSelected(true);
		this.chkMdProyGuar.setEnabled(false);
		this.chkMdProyModi.setEnabled(false);
		this.chkMdProyEliminar.setEnabled(false);
		this.chkMdProyConsultar.setEnabled(false);

		// Descativar Auditoria
		this.rbtnActMdAudi.setSelected(false);
		this.rbtnDesacMdAudi.setSelected(true);
		this.chkMdAudiGuar.setEnabled(false);
		this.chkMdAudiModi.setEnabled(false);
		this.chkMdAudiEliminar.setEnabled(false);
		this.chkMdAudiConsultar.setEnabled(false);

	}

	private void LimpiarCheckBox() {
		// Desactivar Usuario
		this.rbtnDesacMdUsu.setSelected(false);
		this.rbtnActMdUsu.setSelected(false);
		this.chkMdUsuarioGuar.setSelected(false);
		this.chkMdUsuarioModi.setSelected(false);
		this.chkMdUsuarioEliminar.setSelected(false);
		this.chkMdUsuarioConsultar.setSelected(false);

		// Desactivar Permiso
		this.rbtnDesacMdPer.setSelected(false);
		this.rbtnActMdPer.setSelected(false);
		this.chkMdPermisoGuar.setSelected(false);
		this.chkMdPermisoModi.setSelected(false);
		this.chkMdPermisoEliminar.setSelected(false);
		this.chkMdPermisoConsultar.setSelected(false);

		// Desactivar Proyecto
		this.rbtnActMdProy.setSelected(false);
		this.rbtnDesacMdProy.setSelected(false);
		this.chkMdProyGuar.setSelected(false);
		this.chkMdProyModi.setSelected(false);
		this.chkMdProyEliminar.setSelected(false);
		this.chkMdProyConsultar.setSelected(false);

		// Descativar Auditoria
		this.rbtnActMdAudi.setSelected(false);
		this.rbtnDesacMdAudi.setSelected(false);
		this.chkMdAudiGuar.setSelected(false);
		this.chkMdAudiModi.setSelected(false);
		this.chkMdAudiEliminar.setSelected(false);
		this.chkMdAudiConsultar.setSelected(false);

	}

	public String generarCodigoPermiso() {
		String cp = null;
		if (rbtnActMdPer.isSelected()) {
			cp = "1";
			if (this.chkMdPermisoGuar.isSelected())
				cp = cp + "1";
			else
				cp = cp + "0";
			if (this.chkMdPermisoModi.isSelected())
				cp = cp + "1";
			else
				cp = cp + "0";
			if (this.chkMdPermisoEliminar.isSelected())
				cp = cp + "1";
			else
				cp = cp + "0";
			if (this.chkMdPermisoConsultar.isSelected())
				cp = cp + "1";
			else
				cp = cp + "0";
		} else
			cp = "00000";
		return cp;
	}

	public String generarCodigoUsuario() {
		String cp = null;
		if (rbtnActMdUsu.isSelected()) {
			cp = "1";
			if (this.chkMdUsuarioGuar.isSelected())
				cp = cp + "1";
			else
				cp = cp + "0";
			if (this.chkMdUsuarioModi.isSelected())
				cp = cp + "1";
			else
				cp = cp + "0";
			if (this.chkMdUsuarioEliminar.isSelected())
				cp = cp + "1";
			else
				cp = cp + "0";
			if (this.chkMdUsuarioConsultar.isSelected())
				cp = cp + "1";
			else
				cp = cp + "0";
		} else
			cp = "00000";
		return cp;
	}

	public String generarCodigoProyecto() {
		String cp = null;
		if (rbtnActMdProy.isSelected()) {
			cp = "1";
			if (this.chkMdProyGuar.isSelected())
				cp = cp + "1";
			else
				cp = cp + "0";
			if (this.chkMdProyModi.isSelected())
				cp = cp + "1";
			else
				cp = cp + "0";
			if (this.chkMdProyEliminar.isSelected())
				cp = cp + "1";
			else
				cp = cp + "0";
			if (this.chkMdProyConsultar.isSelected())
				cp = cp + "1";
			else
				cp = cp + "0";
		} else
			cp = "00000";
		return cp;
	}

	public String generarCodigoAuditoria() {
		String cp = null;
		if (rbtnActMdAudi.isSelected()) {
			cp = "1";
			if (this.chkMdAudiGuar.isSelected())
				cp = cp + "1";
			else
				cp = cp + "0";
			if (this.chkMdAudiModi.isSelected())
				cp = cp + "1";
			else
				cp = cp + "0";
			if (this.chkMdAudiEliminar.isSelected())
				cp = cp + "1";
			else
				cp = cp + "0";
			if (this.chkMdAudiConsultar.isSelected())
				cp = cp + "1";
			else
				cp = cp + "0";
		} else
			cp = "00000";
		return cp;
	}

	public String generarCodigoSeguridad() {
		String codigo = null;
		codigo = generarCodigoPermiso() + generarCodigoUsuario()
				+ generarCodigoAuditoria() + generarCodigoProyecto();
		return codigo;
	}

	private void guardarPermiso(){		
		try {
			perfil.setNombre(this.txtNombrePer.getText());
			perfil.setDescripcion(this.txtAreaDes.getText());
			perfil.setPermiso(this.generarCodigoSeguridad());
			if(validarPermiso()){
				new PerfilDAOImp().update(perfil);
				tmp = new Auditoria();
				tmp = tmp.agregarEnAuditoria("Perfil", "Guardado", "Guardo un nuevo perfil, para el usuario ");
				Auditoria.listaDeAuditoria.add(tmp);
				logger.debug("guardado en auditoria tmbien..");
				
				AllShowMessage.showMessage(ConstantesGlobales.MENSAJE_EDITAR_CORRECTO);
				dispose();
			}			
		} catch (Exception e) {
			e.printStackTrace();
			AllShowMessage.showErrorMessage(ConstantesGlobales.MENSAJE_EDITAR_ERROR+e);
		}
	}

	private void eliminarPermiso() {

		try {
			
			tmp = new Auditoria();
			Auditoria.listaDeAuditoria.add(tmp.agregarEnAuditoria("Perfil", "Eliminado", "Borro un perfil "+ perfil.getNombre()));

			new PerfilDAOImp().delete(perfil);

			AllShowMessage
					.showMessage(ConstantesGlobales.MENSAJE_ELIMINAR_CORRECTO);
			dispose();
		} catch (Exception e) {
			e.printStackTrace();
			AllShowMessage
					.showErrorMessage(ConstantesGlobales.MENSAJE_ELIMINAR_ERROR
							+ e);
		}
	}

	public boolean validarPermiso() {
		if (!txtNombrePer.getText().equals("")
				&& !txtAreaDes.getText().equals(""))
			return true;
		else {
			AllShowMessage
					.showErrorMessage(ConstantesGlobales.MENSAJE_CAMPOS_VACIOS);
			return false;
		}
	}

}
